package ProyectoX;

import java.awt.BorderLayout;

import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * Clase Fondo extiende Thread
 * */
public class Fondo extends Thread{
	
protected Nivel MiNivel;
protected JLabel Fondo;
protected JLabel Fondo2;
protected JPanel Panel;
	
    /**
     * Constructor Fondo
     * Inicializa atributos.
     * */
	public Fondo (Nivel n, JPanel panel) {
		
		MiNivel = n;
		
		ImageIcon img=new ImageIcon(getClass().getClassLoader().getResource("Imagenes/submarino-2-coral-arrecife2.jpg"));
		ImageIcon img2=new ImageIcon(getClass().getClassLoader().getResource("Imagenes/submarino-2-coral-arrecife2.jpg"));
		
		Fondo = new JLabel();
		Fondo.setIcon(img);

		Fondo2 = new JLabel();
		Fondo2.setIcon(img2);
		
		Panel = panel;

	}
	
	/**
	 * Si el nivel no esta en pausa, se van moviendo los fondos.
	 * */
	public void run(){
		if(!MiNivel.Pausa()){
			
			Fondo.setBounds(0, 0,Fondo.getIcon().getIconWidth(), Fondo.getIcon().getIconHeight() );
			Panel.add(Fondo);
		}
			
			while(Fondo.getX() + Fondo.getIcon().getIconWidth() > MiNivel.obtenerAnchoNivel() ){
				
				if(!MiNivel.Pausa()){
					Fondo.setLocation(Fondo.getX() - 2, Fondo.getY());
					try {
						sleep(20);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
				
			}
			
			while(MiNivel.obtenerNaveJugador().vive()){
				
				if (!MiNivel.Pausa()){
				
				Fondo2.setBounds(Panel.getWidth(), 0, Fondo.getIcon().getIconWidth(), Fondo.getIcon().getIconHeight());
				Panel.add(Fondo2);
				
				
				while(Fondo2.getX() + Fondo2.getIcon().getIconWidth() > MiNivel.obtenerAnchoNivel()){
					if (!MiNivel.Pausa()){
						if(Fondo.getX() + Fondo.getIcon().getIconWidth() == 0)
							Panel.remove(Fondo);
						else
							Fondo.setLocation(Fondo.getX() - 2, Fondo.getY());
						
						Fondo2.setLocation(Fondo2.getX() - 2, Fondo2.getY());
						try {
							sleep(20);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
					}
				}
				
				if (!MiNivel.Pausa()){
					
					Fondo.setBounds(Panel.getWidth(), 0, Fondo.getIcon().getIconWidth(), Fondo.getIcon().getIconHeight());
					Panel.add(Fondo);
				}
				
				while(Fondo.getX() +  Fondo.getIcon().getIconWidth() > MiNivel.obtenerAnchoNivel() ){
					if (!MiNivel.Pausa()){
						
						if(Fondo2.getX() +  Fondo.getIcon().getIconWidth() == 0)
							Panel.remove(Fondo2);
						else
							Fondo2.setLocation(Fondo2.getX()- 2, Fondo2.getY());
						
						Fondo.setLocation(Fondo.getX() - 2, Fondo.getY());
						try {
							sleep(20);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
					}
					
				}
			}
				
		}
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
	
	/**
	 * Setea como no visible ambos fondos
	 * */
	public void Visible(){
		Fondo.setVisible(false);
		Fondo2.setVisible(false);
	}
}
